package com.bdzl.biz.service;

import com.bdzl.pub.entity.data.BankcardDO;
import com.bdzl.pub.entity.data.EnterpriseDO;
import com.bdzl.pub.entity.loan.AgentDO;
import com.bdzl.pub.entity.sys.FileDO;
import com.bdzl.pub.util.param.R;
import com.bdzl.pub.vo.data.AgentVO;
import com.bdzl.pub.vo.data.BankcardVO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;
import java.util.Map;

/**
 * 经销商信息表
 *
 * @author yangyicai
 * @email yangyicai@foxmail.com
 * @date 2021-05-11 15:23:42
 */
public interface AgentService {

	AgentDO get(Integer agentId);

	List<AgentDO> list(Map<String, Object> map);

	int count(Map<String, Object> map);

	int save(AgentDO agent);

	int update(AgentDO agent);

	int remove(Integer agentId);

	int batchRemove(Integer[] agentIds);

	/**
	 * 添加代理商
	 * @param agentVO 添加代理商需要的数据
	 * @param userId 当前登录者ID
	 * @return
	 */
	R addAgent(AgentVO agentVO, Integer userId) throws Exception;

	/**
	 * 修改经销商信息
	 * @param agentVO 添加代理商需要的数据
	 * @param userId 当前登录者ID
	 * @return
	 */
	R updateAgnet(AgentVO agentVO, Integer userId) throws Exception;
	/**
	 * 获取代理商详情
	 * @param agentId 代理商ID
	 * @return
	 */
	R getAgent( Integer agentId) throws Exception;

	/**
	 * 获取经销上信息 和 经销商的银行卡信息
	 */
	List<AgentVO> agnetRelBankcardlist(Map map);

	/**
	 * 获取合同信息
	 */
	List<FileDO> fileList(Map map);


	/**
	 * 获取 经销商信息，和 创建，修改 经销商信息的人的名字
	 * @param agentId
	 * @return
	 */
	AgentVO getAgentAndUser(Integer agentId);


	/**
	 * 获取经销商和 创建人名字list
	 * @param map
	 * @return
	 */
	List<AgentVO> getAgentAndUserList(Map map);

	/**
	 * 删除银行卡信息
	 * @param bcId     银行卡ID
	 * @param arbAgent 经销商ID
	 * @return R
	 */
	R deleteBancrad(Integer bcId, Integer arbAgent);

	/**
	 * 添加营业执照
	 */
	public R saveEnterprise(EnterpriseDO enterprise,Integer userId);

	/**
	 * 查询代理商 和 银行卡信息
	 */
	List<BankcardVO> getBankcardList(Map map);
	int getBankcardListcount(Map map);


	/**
	 * 修改银行卡信息
	 */
	R updateBankcard(BankcardVO bankcardVO,Integer userId);
}
